package upgrade

import (
	"github.com/gogf/gf/v2/frame/g"
	"github.com/sagoo-cloud/sagooiot/api/v1/common"
)

// GetDevOtaDetailListReq 获取数据列表
type GetDevOtaDetailListReq struct {
	g.Meta `path:"/dev_ota_detail/list" method:"get" summary:"获取设备升级详情列表" tags:"升级"`
	common.PaginationReq
	DeviceKey      string `json:"deviceKey" description:"设备key" `
	DeviceName     string `json:"deviceName"  description:"设备名称" `
	Status         int    `json:"status" description:"设备升级状态" `
	DevOtaStrategy int    `json:"devOtaStrategy" description:"批次id" `
}
type GetDevOtaDetailListRes struct {
	Data []GetDevOtaDetailByIdRes
	common.PaginationRes
}

// GetDevOtaDetailByIdReq 获取指定ID的数据
type GetDevOtaDetailByIdReq struct {
	g.Meta `path:"/dev_ota_detail/get" method:"get" summary:"获取设备升级详情" tags:"升级"`
	Id     int `json:"id"        description:"id" v:"required#id不能为空"`
}
type GetDevOtaDetailByIdRes struct {
	Status     string `json:"status"          description:"0待推送，1已推送，2升级中，3升级成功，4升级失败，5已取消"`
	Step       string `json:"step"          description:"升级进度"`
	Fail       string `json:"fail"          description:"失败原因 -1：升级失败，-2：下载失败，-3：校验失败，-4：烧写失败"`
	CreatedAt  string `json:"createdAt"          description:""`
	UpdatedAt  string `json:"updatedAt"          description:""`
	Id         string `json:"id"          description:""`
	StrategyId string `json:"strategyId"          description:"升级批次"`
	DeviceId   string `json:"deviceId"          description:"设备id"`
	DeviceKey  string `json:"deviceKey" dc:"设备标识"`
	DeviceName string `json:"deviceName" dc:"设备名称"`
}

// AddDevOtaDetailReq 添加数据
type AddDevOtaDetailReq struct {
	g.Meta     `path:"/dev_ota_detail/add" method:"post" summary:"添加设备升级详情" tags:"升级"`
	DeviceId   string `json:"deviceId"          description:"设备id"`
	Status     string `json:"status"          description:"0待推送，1已推送，2升级中，3升级成功，4升级失败，5已取消"`
	Step       string `json:"step"          description:"升级进度"`
	Fail       string `json:"fail"          description:"失败原因 -1：升级失败，-2：下载失败，-3：校验失败，-4：烧写失败"`
	CreatedAt  string `json:"createdAt"          description:""`
	UpdatedAt  string `json:"updatedAt"          description:""`
	StrategyId string `json:"strategyId"          description:"升级批次"`
}
type AddDevOtaDetailRes struct{}

// EditDevOtaDetailReq 编辑数据api
type EditDevOtaDetailReq struct {
	g.Meta     `path:"/dev_ota_detail/edit" method:"put" summary:"编辑设备升级详情" tags:"升级"`
	Step       string `json:"step"          description:"升级进度"`
	Fail       string `json:"fail"          description:"失败原因 -1：升级失败，-2：下载失败，-3：校验失败，-4：烧写失败"`
	CreatedAt  string `json:"createdAt"          description:""`
	UpdatedAt  string `json:"updatedAt"          description:""`
	Id         string `json:"id"          description:""`
	StrategyId string `json:"strategyId"          description:"升级批次"`
	DeviceId   string `json:"deviceId"          description:"设备id"`
	Status     string `json:"status"          description:"0待推送，1已推送，2升级中，3升级成功，4升级失败，5已取消"`
}
type EditDevOtaDetailRes struct{}

// DeleteDevOtaDetailReq 删除数据
type DeleteDevOtaDetailReq struct {
	g.Meta `path:"/dev_ota_detail/delete" method:"delete" summary:"删除设备升级详情" tags:"升级"`
	Ids    []int `json:"ids"        description:"ids" v:"required#ids不能为空"`
}
type DeleteDevOtaDetailRes struct{}
